A storage system typically comprises one or more storage devices into which information may be entered, and from which information may be obtained, as desired. The storage system includes a storage operating system that functionally organizes the system by, inter alia, invoking storage operations in support of a storage service implemented by the system. The storage system may be implemented in accordance with a variety of storage architectures including, but not limited to, a network-attached storage environment, a storage area network and a disk assembly directly attached to a client or host computer. The storage devices are typically disk drives organized as a disk array, wherein the term “disk” commonly describes a self-contained rotating magnetic media storage device. The term disk in this context is synonymous with hard disk drive (HDD) or direct access storage device (DASD).
The storage operating system of the storage system may implement a high-level module, such as a file system, to organize the information stored on volumes as a hierarchical structure of storage objects, such as files. The storage system may be further configured to allow many servers to access storage objects stored on the storage system. In this model, the server may execute an application that “connects” to the storage system over a computer network, such as a point-to-point link, shared local area network (LAN), wide area network (WAN), or virtual private network (VPN) implemented over a public network such as the Internet. Each server may request the data services of the storage system by issuing access requests (read/write requests) as file-based and block-based protocol messages (in the form of packets) to the system over the network.
A plurality of storage systems may be interconnected to provide a storage system architecture configured to service many servers. In some embodiments, the storage system architecture provides one or more aggregates, each aggregate comprising a set of one or more storage devices (e.g., disks). Each aggregate may store one or more storage objects, such as one or more volumes. The aggregates may be distributed across a plurality of storage systems interconnected as a cluster. The storage objects (e.g., volumes) may be configured to store content of storage objects, such as files, served by the cluster in response to multi-protocol data access requests issued by servers.
Each storage system (node) of the cluster may include (i) a storage server (referred to as a “D-blade”) adapted to service a particular aggregate or volume and (ii) a multi-protocol engine (referred to as an “N-blade”) adapted to redirect the data access requests to any storage server of the cluster. In the illustrative embodiment, the storage server of each storage system is embodied as a disk element (D-blade) and the multi-protocol engine is embodied as a network element (N-blade). The N-blade receives a multi-protocol data access request from a client, converts that access request into a cluster fabric (CF) message and redirects the message to an appropriate D-blade of the cluster.
The storage systems of the cluster may be configured to communicate with one another to act collectively to increase performance or to offset any single storage system failure within the cluster. The cluster provides data service to servers by providing access to a shared storage (comprising a set of storage devices). Typically, servers will connect with a storage system of the cluster for data-access sessions with the storage system. During a data-access session with a storage system, a server may submit access requests (read/write requests) that are received and performed by the storage system. Each server typically executes numerous applications requiring the data services of the cluster.
As discussed above, the storage operating system of the storage system may implement a file system for storing a plurality of storage objects, such as computer files. These files (or “documents”) may be produced by a wide variety of different types of document applications, such as a word processor, spreadsheet application, presentation application, image application, etc. Currently, there are also many different types of formats for each type of document application. As such, the storage system may store a plurality of different document types (that are in a plurality of different types of formats and compatible with a plurality of different types of applications). This may be problematic when attempting to access the content in the different document types on the storage system. Typically, in order to access the content of different document types, each application corresponding to each document type would need to be installed and available for accessing the content. As such, there is a need for a more accessible method for storing documents on a storage system.
Another issue with current storage systems is the inefficient manner for modifying related documents stored on the storage system. For example, assume that a large number of documents each relate to a particular technology. If the particular technology has been updated, to update the documents accordingly, each of the documents would need to be individually accessed, modified, and saved to the file system. This is due to the fact that the documents are stored as independent files on the file system, each document having no connection or relationship to the other. Such an update process may consume large amounts of time and computer and human resources. As such, there is a need for a more efficient method for modifying related documents on a storage system.
Finally, another issue with current storage systems is the inefficient manner used for providing solution documents for clients/users of the storage systems for any issues or queries regarding storage system hardware and/or software the clients/users may have. The solution document may provide a description of how to resolve the client's issue or query. Typically, to provide a solution document to the client, an administrator or engineer is needed to interact with the client to determine their issue or query, determine any storage system services, products, and/or technologies related to the issue or query, identify any documents in the storage system describing these services, products, and/or technologies, modify any of the documents if any of the corresponding services, products, and/or technologies has been recently updated, and produce a solution document for the client that includes the description of the related services, products, and/or technologies. Given that a large number of issues or queries may be received by clients, such a solution process for each issue or query may collectively consume large amounts of time and computer and human resources. As such, there is a need for a more efficient method for providing solution documents for the clients/users.